import axios from 'axios'
import Element from 'element-ui'
import router from '../router'
import store from '../store'
//前置拦截--发起请求的时候要做的配置
axios.interceptors.request.use(config=>{
  console.log("前置拦截执行类");
  return config;
});
//后置拦截
axios.interceptors.response.use(response =>{
  let res = response.data;
  console.log("==================");
  console.log(res);
  if(res.code === 200){
    return response;//往下走
  }else {
    //不能直接使用this,duration:3*1000===超时时间
    Element.Message.error('用户名或密码错误',{duration: 3*1000});
    //返回异常
    return Promise.reject(response.data.msg)
  }
},
  /*发生错误时*/
  error => {
    console.log("发生错误时",error.response.data);
    //如果返回的有值
    if(error.response.data){
      error.message = error.response.data.msg;
    }
    console.log(error);
    if(error.response.status === 401){
      store.commit("REMOVE_INFO");//清空状态
      router.push("/") //页面跳转
    }
    console.log("=========错误啦============",error.message);
    //弹出错误信息
    Element.Message.error(error.message);
    return Promise.reject(error);
  }
  );
//权限控制--路由判断登录。根据路由配置文件的参数
router.beforeEach((to, from, next) => {
  if(to.matched.some(record => record.meta.requireAuth)){ //判断该路由是否需要登录权限--为true表示需要权限的
    const token = localStorage.getItem("token");
    console.log("---------------",token);
    if(token){//判断当前的token是否存在，登录存入的token
      if(to.path === '/'){//如果是登录也就不管他

      }else{
        //放过
        next();
      }
    }else{
      //如果没有token
      next({
        path:'/'
      })
    }
  }else{
    next()
  }
});





















